 | | MENTAL vs. BLOCKCHAIN |
“Blockchain: la tecnología que va a cambiar tu vida” (Guillermo Vega y Olivia López Bueno)
“Pienso que las redes descentralizadas será la siguientes gran ola de la tecnología” (Melanie Swan)
“Pienso que Bitcoin tiene el potencial de cambiar el mundo” (Peter Thiel)
La Tecnología Blockchain
La tecnología Blockchain (cadena de bloques) es una nueva tecnología que apareció en Enero de 2009 con la introducción del bitcoin (abreviada como BTC), una criptomoneda digital, moneda virtual o token. Desde entonces ha ido desarrollandose e implantándose en otras aplicaciones porque se reconoce que es una tecnología con inmensas posibilidades, hasta tal punto que se considera la próxima revolución industrial. La gran mayoría de las aplicaciones de Blockchain están por diseñarse e incluso por imaginarse. Se considera que su impacto será tan grande como la irrupción del PC (1975) e Internet (1993).
La tecnología Blockchain es un salto en la evolución de la red: desde el internet de la información al Internet del valor (Internet of Value, IoV). El internet del valor se basa en el registro digital de transacciones de bienes y servicios entre dos usuarios si necesidad de una tercera entidad de confianza que valide las transacciones. Un valor puede ser dinero, un contrato, un registro de la propiedad, un título académico, etc.
Así como el Internet de la información ha cambiado radicalmente nuestras vidas, se considera que el Internet del valor puede revolucionar nuestra forma de interactuar, relacionarnos y entender el mundo. En definitiva, se trata de nuevo paradigma, un salto conceptual, tecnológico y social.
La tecnología Blockchain esta evolucionando muy rápidamente. Cuando alcance la masa crítica, su expansión será exponencial, como ha ocurrido con los PCs, los teléfonos móviles y la propia Internet. Gobiernos y empresas está en invirtiendo mucho recursos en impulsar están nueva tecnología.
En 2016 se creó el Global Blockchain Forum, una iniciativa de la Chamber of Digital Commerce. En Enero de 2017, el World Economic Forum predijo que para 2025 el 10% del PIB global estará almacenado mediante tecnología Blockchain o tecnología relacionada con ella.
¿Qué es exactamente una cadena de bloques?
Una cadena de bloques es una base de datos en la que se almacenan secuencial y cronológicamente los registros asociados a las transacciones de los valores de los usuarios participantes.
- Estructuralmente Blockchain consta de una red de ordenadores (nodos). Cada nodo de la red puede ser un PC o un superordenador, pero todos los nodos son funcionalmente iguales. No existe un servidor o punto de control central.
- Los nodos están todos conectados entre sí. Es una “red entre pares” o P2P (peer to peer). No hay una jerarquía de nodos. Un ejemplo de este tipo de red es BitTorrent, que permite el intercambio directo de contenidos entre ordenadores.
- La base de datos está organizada en bloques conectados secuencialmente. Cada bloque corresponde a varias transacciones. Cada bloque está formado por: 1) una cabecera, que incluye un enlace con el bloque anterior; 2) un cuerpo con los datos de las transacciones.
- El primer bloque de la cadena es el número cero y es conocido como “bloque génesis”.
- La base de datos está protegida criptográficamente. Hay un algoritmo de cifrado de los bloques.
- La cadena de bloques es una base de datos que solo soporta adiciones, nunca actualizaciones. Los registros de la base de datos (los bloques) son inmutables y permanentes.
- La base de datos está replicada en los equipos de cada uno de los nodos. No es una base de datos centralizada y tampoco es distribuída (como a veces de afirma) sino que es una base de datos replicada en cada uno de los nodos. Por lo tanto, es una base de datos descentralizada.
- Se denomina “minería” al proceso computacional que realizan los nodos para validar las transacciones y generar nuevos bloques de la cadena para asegurar la integridad de los datos de la red. Este proceso se denomina “Prueba de Trabajo” (Proof of Work, PoW).
- En una Blockchain, las transacciones confirmadas se registran en un “libro mayor” (según la terminología de la contabilidad tradicional) o ledger (en inglés), que es la propia base de datos (la cadena de bloques) replicada en cada uno de los nodos.
- La base de datos se sincroniza en cada uno de los nodos cada 10 minutos, en una especie de “latido” de la red. En ese periodo, todas las transacciones que se han validado se agrupan en un bloque y se añade a la base de datos. Cada bloque se une con el precedente, creándose así una cadena. El nuevo bloque se replica en todos los nodos. Cada vez que se publica un bloque se confirma el bloque anterior y todos los anteriores hasta el bloque genesis.
- La base de datos no puede ser alterada a menos que todos los nodos participantes se pongan de acuerdo. O bien que un nodo atacante tenga mayor poder computacional que el resto de los nodos de la red. Esto hace que en la práctica sea imposible hacerlo. Si se alterara un dato de un bloque, se alterarían todos los bloques siguientes, por lo que el atacante debería regenerar todos los bloques posteriores. Si se produjera un cambio no autorizado en la base de datos, ésta dejaría de ser consistente y se notificaría automáticamente a cada uno de los nodos.
Tipos de Blockchains
Las Blockchains pueden ser públicas (como Internet), privadas (como Intranet) o mixtas.
- Una Blockchain pública es una red abierta a la participación de cualquiera que lo desee. Cualquier persona, incluso sin ser usuario, puede acceder y consultar las transacciones realizadas. Los nodos no necesitan identificarse. Ejemplos de Blockchains públicas (y más populares) son Bitcoin y Ethereum.
- Una Blockchain privada está restringida solo a usuarios que están identificados y se conocen entre sí.
Los bancos y las instituciones financieras apuestan, sobre todo, por las Blockchains privadas. Los gigantes tecnológicos de Internet como los GAFA (Google, Apple, Facebook, Amazon) prefieren las Blockchains públicas.
Bitcoin
El sector financiero ha sido el primero en tomar la iniciativa en la aplicación de la tecnología Blockchain, aunque todo lo demás sectores están explorando todo su potencial.
Todo empezó el 31 de Octubre de 2008 cuando un autor desconocido llamada Satoshi Nakamoto (se supone que es un pseudónimo de una persona o el nombre de un grupo o entidad) publicó un anuncio en la lista de correos de la web www.metzdown.com dedicada a la criptografía. En él se describía un sistema de pagos (transferencia de dinero) que permitía a sus usuarios proteger su identidad mediante el uso de criptografía de clave asimétrica, una base de datos descentralizada y validada por consenso a través de una prueba de trabajo realizada por los nodos del sistema.
Nakamoto público un nuevo protocolo “A peer-to-peer electronic cash system”, usando una criptomoneda llamada “bitcoin”. Una criptomoneda se diferencia de una moneda tradicional en qué ningún gobierno la controla. Bitcoin es una criptomoneda orientada a las transferencias monetarias (nacionales e internacionales), remesas y pagos en general en la compra-venta de bienes y servicios.
En su artículo original, Nakamoto uso las palabras “block” y “chain” separadamente. En 2016 se unieron las dos palabras, lo que contribuyó a potenciar su imagen y su difusion.
El bitcoin se basa en una Blockchain pública. Cualquier persona o entidad puede convertirse en usuario y válidador de las transacciones, y formar parte de la red como un nodo.
Con el bitcoin se creó un estándar de interoperabilidad entre entidades financieras con grandes beneficios:
- Simplificación estructural y funcional.
- Eliminación de la burocracia y los procesos manuales.
- Eliminación de impuestos.
- Reducción de costes operativos.
- Rapidez y agilidad en las transacciones. Las transacciones si realizan prácticamente en tiempo real (entre pocos segundos o minutos).
- Posibilidad de nuevo servicios y modelos de negocio.
- Seguridad.
- Imposibilidad de confiscación o control.
- Suministro de infraestructura financiera a los países que no la tienen.
- Reducción del circulante.
- Trazabilidad completa de las operaciones.
- Democratización de las transacciones financieras.
Un bitcoin se divide 1000 milibits y un milibit en 105 satoshis. Por lo tanto, 1 bitcoin son 100 millones de satoshis.
El valor estimado del mercado total de bitcoins se estima entre 5 y 10 mil millones de dólares. La primera transacción que se realizó con bitcoins se produjo el 22 de Mayo de 2010, en la que se ofrecieron 10.000 bitcoins por una pizza. La mayor transacción procesada hasta el momento por la red fue de 150 millones de dólares.
Bitcoin no es una empresa. Es un software de código abierto que cualquiera puede consultar, contribuir o utilizar. Bitcoin es un cambio cultural hacia un mundo descentralizado.
El protocolo Bitcoin
En general, un protocolo de comunicación es un sistema de reglas que permiten que dos o más ordenadores se comuniquen entre sí para transmitir información.
Los nodos de una red Blockchain utilizan el mismo protocolo de comunicación para comunicarse entre sí. Protocolos de comunicación conocidos son TCP/IP (Internet), SMTP (intercambio de correos electrónicos) y HTTP (transferencia de información en la Web). Estos protocolos han permitido crear el Internet de la información. El protocolo Bitcoin abre las puertas a un nuevo protocolo para las comunicaciones descentralizadas.
Hay que diferenciar entre protocolo Bitcoin (con “B” mayúscula) del bitcoin (con “b” minúscula), que es la criptomoneda.
El protocolo Bitcoin fue creado con el objetivo de disponer de un sistema descentralizado de transacciones monetarias que estuviera controlado por una comunidad de usuarios sin la necesidad de una tercera entidad de confianza centralizada. De esta manera se podría prescindir de los bancos comerciales o bancos centrales.
Hacktivismo, cyberpunks y cypherpunks (entre otros movimientos filosóficos y sociales) se encuentran en el origen del protocolo Bitcoin. Buscaban una nueva forma de Internet, mayor libertad, protección de la privacidad y una visión descentralizada de la autoridad y uso del dinero anónimo.
El hacktivismo promueve unas comunicaciones seguras entre personas de distintos países y resistente al espionaje de los gobiernos, así como la libertad expresión, la posibilidad de criticar al sistema establecido sin temor a represalias.
Un cyberpunk es una persona que defiende de forma exacerbada la libertad de expresión, la libertad de información y la privacidad de las comunicaciones. Cree que todo usuario debe tener el poder y el control sobre sus datos y acciones en el mundo digital.
De los cyberpunks derivaron los cypherpunks, que vieron en la criptografía la tecnología para alcanzar esos objetivos en el mundo digital. El ejemplo más representativo o conocido es el movimiento Anonymous.
La criptografía del protocolo Bitcoin
La criptografía es el arte de transformar un mensaje legible en otro ilegible. A este proceso se le denomina “cifrado”, y el proceso contrario es el “descifrado”.
Hay tres tipos de criptografía:
- Hashing.
Se trata de “moler” (“hash” significa picar o moler) un mensaje de cualquier longitud hasta obtener una secuencia de caracteres de longitud fija (el hash). Es una especie de huella digital de un mensaje o documento. El hash se obtiene aplicando una función al contenido del mensaje. Cualquier modificación del contenido hace cambiar el hash resultante. El propósito de un hash no es cifrar el contenido sino comprobar su integridad: verificar que no ha sido alterado.
La función hash es unidireccional, siendo prácticamente imposible realizar la función inversa. Un ejemplo de este tipo de función es la factorización de números enteros. Multiplicar dos números primos de centenares o miles de cifras es fácil para los ordenadores actuales, pero no se conoce un algoritmo eficiente para invertir la multiplicación (recuperar los dos primos iniciales).
Las características que debe cumplir una función hash son: 1) eficiencia en la computación; 2) dificultad en obtener el mensaje original; 3) dificultad de que otro mensaje diferente genere el mismo hash.
El protocolo Bitcoin utiliza la criptografía hash para identificar un bloque de transacciones de forma única.
- Criptografía simétrica.
La criptografía simétrica utiliza una sola clave para cifrado y descifrado. Los algoritmos más usados son de dominio público, por lo que la seguridad reside solo en la clave.
Una clave y una contraseña no solo mismo. Las claves se suelen generar de forma aleatoria y son largas. Las contraseñas son cortas y están pensadas para que pueden ser memorizadas por las personas.
- Criptografía asimétrica o de clave pública.
Utiliza dos claves: una pública y otra privada. La clave privada la guarda el usuario en secreto, y la pública la conoce todo el mundo.
Con la clave pública cualquiera puede cifrar los mensajes y solo el destinatario puede descifrarlos con su clave privada. Conociendo la clave privada se puede conocer la clave pública, pero no al revés. Es otro ejemplo de función unidireccional. El algoritmo de clave pública más conocido y utilizado es RSA, que se basa en la multiplicación de dos números primos.
El protocolo Bitcoin combina la tecnología P2P con la criptografía de clave pública. Usa el algoritmo hash SHA-256 (Secure Hash Algorithm de 256 bits). Para incrementar la seguridad, Bitcoin aplica dos veces la función hash, es decir, (SHA-256)2.
- La clave privada es un número aleatorio de 256 bits, que se suele representar mediante 64 caracteres hexadecimales. La clave privada es como una firma digital que da acceso a su propietario a sus datos. Las claves privadas se generan y se guardan en una cartera o monedero Bitcoin. La clave privada permite firmar digitalmente cada transacción.
- La clave pública se usa para recibir bitcoins.
La clave pública se puede ver como si fuera el número de una cuenta bancaria, y la clave privada como si fuera el PIN secreto.
Como las claves privada y pública tienen un formato complejo, se utilizan direcciones Bitcoin, que tienen un formato más sencillo, cara al usuario. Las direcciones Bitcoin son cadenas de dígitos y letras que se generan a partir de las claves.
Para cada usuario hay una dirección Bitcoin privada y una dirección Bitcoin pública. La dirección Bitcoin privada da acceso a los bitcoins del usuario (y debe mantenerse en secreto). La dirección Bitcoin pública es la destinataria de los bitcoins. Es como una dirección de correo electrónico, pero receptores no de mensajes, sino de dinero. Un usuario puede tener varias direcciones Bitcoin, de la misma forma que puede tener varias direcciones de correo electrónico.
Proceso de transacciones
Una transacción es una estructura de datos que indica una transferencia de una cantidad de bitcoins desde un emisor (propietario de dichos bitcoins) a un destinatario. La transacción está firmada (con su clave privada) por el emisor y va desde su monedero a una dirección Bitcoin del destinatario.
Como las transacciones en Bitcoin son totalmente públicas, cualquier usuario (incluso externo a la red de nodos) puede ver el contenido de una dirección Bitcoin en concreto e incluso el flujo de bitcoins desde el bloque genesis hasta el ultimo bloque generado.
Un monedero es un software que guarda la clave privada de un usuario, la clave pública, así como sus direcciones Bitcoin. El monedero sirve para enviar, recibir y almacenar los bitcoins del usuario. Con un mn monedero se pueden construir transacciones sin conexión a la red y enviarla posteriormente para que se ejecute.
Una transacción consta de de una o más entradas (que son débitos contra una cuenta Bitcoin) y una o más salidas (que son créditos añadidos a una cuenta Bitcoin).
Las nuevas transacciones son difundidas rápidamente por la red Bitcoin desde los monederos de los usuarios y recogidas por los mineros de los nodos de la red, que son los que tienen que validarlas. Cuando son detectadas por los nodos de la red, se añaden a un conjunto temporal de transacciones pendientes de validar.
Un conjunto de transacciones se agrupan en un bloque. Cuando todas ellas se validan, el bloque se confirma añadiéndolo al libro contable distribuido global (la cadena de bloques). El bloque contiene una transacción adicional, que corresponde a la recompensa recibida por el minero, con su propia dirección Bitcoin.
Cada 10 minutos de media, los mineros generan un nuevo bloque que contiene las transacciones que han sido validadas desde el ultimo bloque publicado. Cada minero comienza el proceso de validar un bloque de transacciones tan pronto como recibe el ultimo bloque publicado.
Cada vez que se añade un bloque a la cadena de bloques es una confirmación de los bloques anteriores. Un bloque con 6 o más confirmaciones se considera irrevocable, porque se require una inmensa capacidad de cálculo para recalcular los 6 bloques siguientes. Un bloque es tanto más fiable cuantos más bloques le sigan en la cadena. A medida que aumenta el número de bloques, también aumenta la dificultad de cómputo para cada nuevo bloque y de la cadena en su conjunto.
Añadir sucesivamente bloques a un determinado bloque es como “enterrarlo” bajo los nuevos bloques. Cuanto más profundo está un bloque, más seguro está. Y cuanto más superficial, menos seguro.
Un bloque está formado por una cabecera y un cuerpo. El cuerpo es una agrupación de transacciones. En la cabecera se incluye un sello de tiempo (timestamp) y una huella digital (hash) de la cabecera del bloque anterior.
Clientes Bitcoin
Hay tres tipos de clientes Bitcoin:
- Cliente completo (o nodo completo).
Almacena todas las transacciones Bitcoin (la cadena de bloques), administra los monederos de los usuarios y puede realizar transacciones sobre la red.
- Cliente ligero.
Almacena los monederos de los usuarios, pero depende de terceros para realizar transacciones.
- Cliente web.
Accede a la red Bitcoin a través de navegador web y almacena los monederos de los usuarios en servidores de terceros.
Minar bitcoins
En cualquier sistema monetario tradicional los gobiernos imprime más dinero cuando lo necesitan, sin trabajo. En cambio, los bitcoins se crean con trabajo, con esfuerzo. Miles de ordenadores de todo el mundo minan bitcoins, compitiendo unos con otros. Hoy día esta red de computación es la más potente que existe.
Los bitcoins se crean mediante un proceso denominado “minería”. Este proceso descentraliza la función de emision de monedas sin depender de una entidad central. Minar bitcoins es equivalente a imprimir billetes de las monedas fiduciarias. Los mineros crean nuevos bitcoins con la recompensa obtenida por cada bloque publicado en el libro mayor. La cantidad de bitcoins creados por bloque es fijo, pero disminuye con el tiempo.
Las transacciones se empaquetan en bloques, y los mineros validan los bloques. Este proceso de validación, denominado “prueba de trabajo” require una enorme capacidad de computación. Una vez validado el bloque, se confirma añadiéndolo a la cadena de bloques.
La minería es como un juego competitivo. Es como un sudoku, que es difícil de resolver, pero fácil de verificar. Además, la dificultad se puede ajustar, como el número de filas y columnas y el número de casillas rellenas de un sudoku.
La prueba de trabajo consiste en resolver un problema matemático, que es siempre el mismo. Consiste en encontrar un hash que no haya aparecido previamente y que tenga una estructura determinada. Para ello se ejecuta iterativamente el algoritmo criptográfico SHA-256 que satisfaga el objetivo (target) de dificultad. Este algoritmo utiliza el hash de la cabecera del bloque anterior (el ultimo bloque publicado) y un número aleatorio (nonce) elegido por los mineros (un valor de 32 bits), que únicamente puede utilizarse una vez, para asegurar que cada transacción solo pueda procesarse una vez.
El primer minero que encuentre la solución gana la ronda de competición y a continuación publica el nuevo bloque en el libro mayor (la cadena de bloques), ganando la recompensa (en bitcoins) ofrecida por cada bloque publicado.
Inicialmente (año 2009) y hasta el 2012, la recompensa era de 50 bitcoins por bloque minado. Desde Julio de 2012 hasta el 2016, la recompensa se redujo a 25 bitcoins por bloque. Actualmente la recompensa es de 12, 5 bitcoins por bloque. Este proceso se denomina “halving” (division por dos) y se realiza de forma automática cada 210.000 bloques publicados elevando el nivel de dificultad de validación de los bloques. Como cada 10 minutos aproximadamente se publica un nuevo bloque, el halving tiene lugar cada 4 años y la recompensa tiende a cero. El ultimo bloque que se publique tendrá como recompensa la minima cantidad possible: un satoshi.
Actualmente ya se ha emitido el 75 % de los bitcoins previstos. El número de bitcoins seguirá creciendo hasta un valor límite de 21 millones de monedas, que se estima sucederá hacia el año 2140. Por lo tanto, Bitcoin es un sistema deflacionario.
La solución de Bitcoin con su PoW se puede aplicar también para todo tipo de transacciones, no solo monetarias, para validarlas y confirmarlas sin una entidad central.
El valor del bitcoin se calcula en tiempo real en función de la oferta y la demanda mediante un algoritmo que mide la cantidad de movimientos y transacciones. Como cualquier otra divisa, el bitcoin fluctúa de valor cada segundo.
Existen tres maneras de conseguir bitcoins:
- La forma más sencilla es comprarlas a través de la web bitcoin.com o de un cajero automático que permita intercambiar monedas reales por bitcons. Ya existen algunos cajeros de este tipo.
- Minar bitcoins.
Se trata de utilizar una parte de los recursos de nuestro ordenador para resolver un problema matemático complejo.
- Intercambiando objetos o trabajo por bitcoins.
Ethereum
Ethereum es una plataforma Blockchain lanzada en el verano de 2014. Fue desarrollada por un ruso-canadiense de 21 años llamado Vitalik Buterin. Es un sistema genérico y distribuido de computación que va más allá de de las transacciones monetarias. Es una red preparada para soportar todo tipo de aplicaciones Blockchain. Tiene capas de software adicionales que hace que sea más genérica que Bitcoin.
Ethereum realmente inauguró el Bitcoin 2.0, o el proyecto Blockchain 2.0. Su moneda se llama ether (ETH), es similar a bitcoin, y también se realizan procesos de minado de bloques. Ether es la segunda criptomoneda más valorada y utilizada del mundo, tras bitcoin. Un ether se divide en unidades más pequeñas llamadas finney, stabo, shannon, babbage, lovelace y wei. Cada unidad vale 1000 veces la siguiente.
Ethereum funciona de manera descentralizada mediante una máquina virtual llamada Ethereum Virtual Machine (EVM) embebida en la implementación de cada nodo. EVM permite a los nodos Ethereum almacenar y procesar datos para realizar transacciones y responder a los eventos del mundo real asociados con los contratos inteligentes.
Ethereum ha creado un lenguaje especial llamado Solidity, un lenguaje híbrido entre Javascript y C++, orientado a contratos inteligentes que se ejecuta en la EVM. Se compila a bytecode y se ejecuta en cada nodo.
Ethereum fue desarrollada con Go y C++. Go es un lenguaje de código abierto que permite crear software de manera simple, fiable y eficiente. C++ es una extension de C que permite programación orientada a objetos.
En Marzo de 2017 se creó la Enterprise Ethereum Alliance (EEA) para coordinar y estandarizar el uso de Ethereum.
Contratos inteligentes
Ethereum permite realizar contratos inteligentes. Un contrato inteligente (smart contract) es un acuerdo entre pares con la capacidad de autoejecutarse de forma automática cuando se cumple una condición o evento previsto en el contrato. Por ejemplo, el pago automático de indemnizaciones, por lo que no habrá necesidad de reclamar nada. Otro ejemplo son los derechos de propiedad intelectual, donde los autores monetizarían los usos de sus creaciones de forma automática
Los contratos inteligentes aportan una nueva vision descentralizada de la economía compartida. Por ejemplo, Uber y Airbnb podrían operar sin gestión centralizada.
- Aunque el concepto de contrato inteligente es anterior a Blockchain, ha sido en el marco de esta tecnología donde ha cobrado fuerza.
- Un contrato inteligente se escribe mediante un código y luego se registra en la cadena de bloques.
- Un contrato inteligente se puede implementar en una Blockchain privada o pública.
- Un contrato inteligente incluye normalmente una transacción financiera.
- Los contratos inteligentes son inmutables. Una vez creados, no se pueden modificar.
- Los contratos inteligentes tienen dos problemas: 1) precisamente la inmutabilidad de los contratos; 2) la cuestión de cómo ligar el contrato inteligente con servicios externos.
Bitcoin vs. Ethereum
- Ethereum es más eficiente que Bitcoin. Las transacciones de Ethereum son unas 50 veces más rápidas que Bitcoin.
- Ethereum es un proyecto de código abierto, como Bitcoin.
- A diferencia del creador de Bitcoin, se sabe todo sobre el inventor de Ethereum.
- Bitcoin ha establecido un número máximo de monedas en circulación: 21 millones. La emision de bitcoins se reducirá paulativamente a lo largo del tiempo, y se llegará al máximo alrededor del año 2140. Esto hará que los bienes y servicios que se compren con ellos irán bajando de precio.
En los ethers no hay límite teórico y podría seguirá creciendo indefinidamente, siempre que haya usuarios en la plataforma. Pero en Enero de 2015 se añadió a Ethereum una “bomba de complejidad” al código Ethereum con el objeto de incrementar exponencialmente la complejidad del minado y, por lo tanto, la creación de nuevos bloques en la red. Esto implicaba en la práctica el limitar los ethers en circulación, como los bitcoins.
- Actualmente cada bloque minado en Ethereum vale 5 ethers. Cada bloque minado de Bitcoin vale 12,5 bitcoins.
- Con Bitcoin también se pueden realizar contratos inteligentes, pero se necesita un software adicional que lo ejecute. En cambio, Ethereum (EVM) es el propio programa ejecutor.
Organizaciones autónomas descentralizadas
Una DAO (Decentralized Autonomous Organization) es una DO (Decentralized Organization) en el que las decisiones las toman agentes autónomos automatizados. Una DAO es una empresa que funciona de forma que las reglas del negocio son públicas, además de estar distribuida en los ordenadores de los accionistas.
Una DAO tiene, además de una base de datos descentralizada, tiene aplicaciones descentralizadas (Dapps). Ethereum es un buen ejemplo de DAO.
Ethereum y Ethereum Classic
En Mayo de 2016 se creó un fondo de capital riesgo llamado “The DAO” para el desarrollo de empresas descentralizadas autónomas. Este fondo detectó problemas de seguridad: un hacker encontró una forma de robar varios millones de dólares en ethers. El problema residia en que, cuando se añaden nuevas reglas de consenso, puede haber en los nodos copias no consistentes de la base de datos, es decir, que puede haber diferentes versiones en momentos diferentes. Esto provoca una ramificación (fork) de la cadena de bloques. Esta bifurcación ya ocurrió en Bitcoin debido a un error que permitió a un usuario robar una gran cantidad de bitcoins.
Como consecuencia de este hecho, en Julio de 2016, Ethereum se escindió en dos líneas activas: Ethereum y Ethereum Classic, con dos tipos de cambio diferentes. Ethereum permite ramificaciones. Ethereum Classic rechaza las ramificaciones para preserver la consistencia e inmutabilidad de la cadena de bloques. La criptomoneda de Ethereum Classic es “classic ether” (ETC). Hoy día el precio de ETH es mucho mayor que ETC.
Aplicaciones
Blockchain puede aplicarse a cualquier valor que pueda traducirse en código. Por ejemplo:
- Criptomonedas (como bitcoin, ether, dogecoin y litecoin).
- Registro de patentes.
- Registro de nombres. Por ejemplo, como alternative al DNS (sistema de nombres de dominio).
- Gestión de la identidad. Una identidad digital sin necesidad de recurrir a documentos oficiales.
- Registros de propiedad.
- Comercio electrónico de productos finacieros, físicos o energéticos.
- Internet de las cosas (IoT). Los contratos inteligentes podrían operar con el IoT para controlar objetos del mundo físico. La startup alemana slock.it, especializada en Blockchain y aplicaciones IoT quiere embeber contratos inteligentes en los dispositivos IoT.
- Voto electrónico. Suiza y Estonia ya utilizan el voto online.
- Gobierno transparente y administración pública descentralizada.
- Historiales médicos. Blockchain promote acabar con el descontrol de los datos sanitarios.
- Actas de nacimiento, defunción y matrimoniales.
- Servicios de resolución de conflictos.
- Acciones de empresa.
- Notaría.
- Contratos inteligentes.
- Plataformas para Crowdfunding.
- Juego y apuestas peer to peer.
- Subvenciones.
- Gestión de becas y subvenciones.
- Donaciones.
- Impuestos.
- Títulos académicos.
- Registros criminales.
- Licencias de negocio.
- Pasaportes.
- Pólizas de seguros.
- Derechos de autor.
- Contratos de trabajo.
- Carteras de ahorro.
- Seguros.
- Almacenamiento descentralizado de archivos.
- Control de la cadena alimentaria. Desde la producción hasta el consumo.
Futuro
En en los próximos años la tecnología Blockchain va a jugar un papel importante, pues permitirá realizer transacciones de manera segura entre todos los actores de la cadena de valor.
- Criptomonedas.
En la actualidad hay más de 700 criptomonedas, aunque las únicas relevantes para el comercio electrónico son bitcoin y ether. En Junio 2017 las 10 criptomonedas más destacadas eran: bitcoin, ether, ripple, litecoin, ethereum classic, nem, dashy, iota, bitshares y strati. En Diciembre de 2016 habías más de 150.000 comercios que aceptaban pagos con bitcoins. Las criptomonedas no cuentan con reconocimiento legal en la mayoría de paises, aunque algunos paises ya la admiten, como Rusia, Japón y Malta.
Las criptodivisas alternativas están basadas principalmente en los conceptos e implementación de Bitcoin, cambiando algunos de los parámetros de diseño.
Neo era el Proyecto de Ethereum chino o la Blockchain pública de China porque recientemente (el 4 de Septiembre de 2017), el Banco Popular de China ha renunciado a Neo y a todas las criptomonedas, provocando así una fuerte bajada en su cotización.
La plataforma de Neo era similar a Ethereum, pero soportando lenguajes tradicionales como C, C#, Java y Go. Su objetivo era generar las condiciones para el desarrollo de una nueva economía, con transparencia de las operaciones y contratos inteligentes. Utilizaba, como Ethereum, una máquina virtual: NeoVM.
- Proyecto Hyperledger.
Es una iniciativa de la Linux Foundation para desarrollar proyectos de código abierto en torno a la tecnología Blockchain. Se trata de crear un marco distribuido, abierto y estándar para que puedan usarlo las industrias.
- IBM y Microsoft están trabajando en Blockchain como servicio (Blockchain as a service, BaaS) basado en la nube.
- Open Bazaar es un protocolo de comercio electrónico descentralizado. Es una alternativa a Amazon. Fue lanzado oficialmente en Abril de 2016. Se trata de que compradores y vendedores sincronicen directamente sus comunicaciones, prescindiendo de intemediarios que impongan sus precios y sus reglas.
- Blockstack.
Su objetivo es sustituir el protocolo centralizado HTTP por un Internet basado en el protocolo P2P, similar a BitTorrent. No se quiere depender de servidores, que los usuarios almacenen sus datos en su propia nube, y con una Blockchain pública asentada como capa de referencia segura e inalterable.
- Wificoin.
Es una criptomoneda que se adquiere compartiendo la conexión Wifi. El proyecto Wificoin consiste en una super-red Wifi abierta, con múltiples puntos de acceso.
Hay dos vías: 1) comprar el acceso a una red Wifi con una criptomoneda, lo que supone un beneficio para el propietario de la red; 2) instalar el sistema operativo de código abierto en el router Wifi y obtener wificoins cada vez que alguien se conecta a la red Wifi.
- uPort.
Es un sistema para la gestión de la identidad basada en la plataforma Ethereum.
- K.im.
Kim Dotcomn (el fundador de Megaupload) va a ofrecer un servicio llamado K.im para gestión del copyright, que se supone será eficiente contra la piratería. Los ficheros se encriptan y se suben a la nube, y sus propietarios pueden poner un precio para bajárselos. Los pagos serán en bitcoins.
- Moni.
Moni es una tarjeta prepago de Finlandia, aparentemente igual que cualquier otra, pero que por debajo esconde la tecnología Blockchain. Esta tarjeta sirve para dos cosas: 1) para asegurar le identidad de su poseedor; 2) para hacer transacciones de dinero digital.
Moni se está aplicando a los refugiados para crear una forma digital de identificación y para eliminar la necesidad de una institución financiera. Permite al Servicio de Inmigración hacer un seguimiento de los titulares de las tarjetas y de sus gastos.
Una tarjeta Moni funciona como una cuenta bancaria. Se puede pagar con ella como si fuera una tarjeta MasterCard y también permite pagar online. Moni ejecuta las transacciones de moneda digital, así como la conversión de la moneda de digital a la moneda fiduciaria.
Las Naciones Unidas están considerando adopter la tecnología Blockchain para dotar de identificación legal a más de mil millones de personas que carecen de documentación oficial.
- Namecoin.
Es una tecnología de código abierto creada en 2010 para la descentralización de ciertos components de la infraestructura de Internet, como DNS e identidades.
- Lunyr.
Es un proyecto de Wikipedia centralizada sobre Ethereum. Admite publicidad, que se compra mediante Lunyr tokens (LUN). Los usuarios que contribuyen con nuevas informaciones son recompensados con Contribution tokens (CBN).
- Cosmos.
Es una startup creada con el objetivo de poder compartir tokens entre plataformas Blockchain. Su lema es “la Internet de los Blockchains”. Tiene su propia criptomoneda llamada Atom”.
- Colored Coins.
El objetivo de las monedas coloreadas es servir como protocolo para permitir a la gente crear sus propias monedas digitales.
- Insurtech.
En el área de seguros, en los próximos años van a parecer la llamadas Insurtech, empresas nuevas totalmente digitalizadas, con contratos inteligentes, en las que jugarán un papel esencial la tecnología Blockchain, la inteligencia artificial, el Big Data, la computación en la nube y el Internet de las cosas.
- BitNation.
Es un ambicioso proyecto de nación virtual fundado en 2014 por Susane Tarkowski Tempelhof. Es un nuevo paradigma de nación y de gobierno (Gobernanza 2.0), cuyo objetivo es ofrecer una plataforma descentralizada de servicios basada en la tecnología Blockchain. Los servicios son los tradicionales de los gobiernos (registrar nacimientos, matrimonios, propiedades, etc.), pero trasparentes, eficientes y seguros.
- Sin gobierno central ni autoridades. Sin respaldo de la jurisdicción de ningún gobierno. BitNation pretende sustituir a los estados y gobiernos tradicionales y dejarlos obsoletos. “No estamos aquí para mejorar las naciones-estado que ya existen, sino para sustituirlas” (Tempelhof).
- Con filosofía es de autoservicio (do it yourself). Los usuarios de esta plataforma actúan de manera voluntaria, sin fronteras ni pasaportes.
- Donde los contratos inteligentes tengan un papel principal.
- Con organizaciones autónomas democráticas.
- Abierta a nuevas ideas y servicios que puedan satisfacer las necesidades de la sociedad.
La primera Constitución virtual en la red Ethereum, llamada “BitNation: Pangea”, fue creada durante una conferencia realizada en Río de Janeiro, y consta de 140 líneas de código. Esta Constitución es de código abierto y está abierta a aportaciones.
El 5 de Octubre de 2014 se celebró la primera boda Blockchain en Disneyworld Florida, en el marco de una conferencia sobre Bitcoin. Es el primer matrimonio registrado sin la intervención de ningún Estado ni Iglesia.
Actualmente BitNation cuenta con 4000 ciudadanos virtuales procedentes de de diversas partes del mundo.
- Comunicaciones.
En el sector de las telecomunicaciones surgirán nuevos modelos de negocio que hasta ahora no habían sido posibles.
- La cuarta revolución industrial.
Nos encontramos en los prolegómenos de lo que se denomina “cuarta revolución industrial”, con fábricas totalmente digitalizadas e inteligentes, robots inteligentes, impresión 3D, Internet de las cosas, comunicaciones máquina a máquina (M2M), y un nuevo paradigma: Industrial Internet of Things (IIOT). En esta revolución Blockchain jugará un papel clave.
MENTAL vs. Blockchain
El mundo avanza de manera imparable hacia la digitalización y la integración. La sociedad estará digitalizada e hiperconectada, tanto entre personas como entre máquinas.
Los ciudadanos quieren datos y procesos inteligibles, sencillos, ubicuos e inmediatos. Demandan un nuevo modelo de administración pública más transparente, eficiente, más integrada en la vida diaria, y un modelo descentralizado, más directo de participación ciudadana. Descentralización implica democratización.
Para ello se necesitan sistemas transversales que conecten un gran número de servicios verticales de características muy distintas. Este integración es compleja, pero se simplificaría si todos los sistemas hablan el mismo lenguaje.
Internet democratizó la información. Blockchain democratiza el valor. Ahora se trata de democratizar el lenguaje formal de comunicación con los ordenadores. MENTAL es la propuesta:
- Un lenguaje claro, simple, humanista, accesible a todos, no críptico (como los lenguajes actuales).
- Que permita la integración desde un nivel profundo de datos y aplicaciones.
- Qué permita aplicaciones centralizadas, descentralizadas o mixtas, tanto en datos como en aplicaciones.
- Qué permita la compartición. MENTAL dispone de un mecanismo (la expression genérica) que permite la compartición de cualquier elemento de información.
- Que soporte nivel meta (meta-datos, meta-reglas, meta-funciones, etc.).
- Que permita la inteligencia artificial incluyendo inteligencia artificial general (Artificial General Intelligence, AGI). La AGI se basa en agentes autónomos interactuando en un entorno. MENTAL es el código natural y humanista para escribir contratos inteligentes.
- El lenguaje de usuario y el del programador es el mismo.
- No se necesita un lenguaje especial ni bytecode (código intermedio).
- Que permita parametrización.
- Que sea un estándar. El problema de los estándares es que cada vez que aparece una nueva tecnología aparecen nuevos estándares, todos desconectados entre sí. Con MENTAL, como lenguaje madre, todos hacen referencia al mismo lenguaje, al mismo estándar.
Blockchain es una tecnología importante, pero es una tecnología más nacida sin una fundamentación común y sin que sea un paso hacia la unificación. La unificación tiene que venir mediante un lenguaje universal que unifique datos y procesos, un lenguaje universal basado en los arquetipos de la conciencia, es decir en la suprema simplicidad conceptual.
- El concepto de Blockchain es relativamente simple, pero la tecnología implementadora es compleja por no disponer de un lenguaje potente y genérico. Y la complejidad es enemigo de la seguridad. MENTAL es simple conceptualmente y facilita la implementación de aplicaciones.
- Hay que diferenciar entre el nivel conceptual y el implementador. El desarrollo de aplicaciones Blockchain se puede hacer en MENTAl, aunque ciertos procesos (como la comunicación de los nodos) debe hacerse mediante procesos especiales.
- Con Blockchain no se ha inventado algo nuevo, sino que se ha inventado una nueva forma de hacer las cosas. MENTAL es un nuevo concepto: un lenguaje formal universal.
- Bitcoin no incluye un nuevo lenguaje y no soporta la inteligencia artificial. Ethereum incluye un nuevo lenguaje (Solidity), y está orientado a contratos inteligentes. Con MENTAL, las aplicaciones de inteligencia artificial en general, y los contratos inteligentes en particular, son más fáciles de hacer.
Adenda
El código abierto de Bitcoin
Hay que distinguir software de código abierto (open source) de software libre (free software). El software libre permite a los usuarios utilizar, mejorar, adaptar y/o redistribuir el software en su forma original o modificada. El software libre requiere disponer de código abierto, pero lo contrario no es siempre cierto (hay casos en que el software de código abierto no se puede modificar).
El organismo que vela por el reconocimiento de software libre y los límites frente al software de código abierto es el OSI (Open Software Initiative).
La licencia del protocolo Bitcoin es MIT License. Es una licencia de código abierto, libre y copyleft. Copyleft permite distribuir libremente copias y versiones modificadas con los mismos derechos que el software original. Cualquier programador puede revisarlo o crear su propia versión modificada.
Árbol de Merkle
Los bloques de la base de datos Blockchain están enlazados en forma de árbol de Merkle (Merkle hash tree). Un árbol de Merkle es una estructura donde cada nodo interior (nodo no final) es el resultado de aplicar una función hash sobre los valores de los nodos hijos, hasta llegar al nodo raíz. Es una generalización de las cadenas hash (hash chains), En las cadenas hash, el coste de verificación de un elemento es proporcional al número de hash de la cadena. En un árbol de Merkle, el coste es proporcional al logaritmo del número de nodos del árbol.
Los bloques de la cadena de bloques de Bitcoin forman un árbol de Merkle binario. Los bloques se agrupan por pares y se genera un hash por cada bloque. Estos hash se agrupan a su vez en pares y generan un nuevo hash, que a su vez se agrupa con otro, y se repite la operación hasta alcanzar el hash raíz. Por ejemplo, un árbol binario de Merkle de 2 niveles de hash es:
El árbol de Merkle utilizado en Ethereum es más complejo que el de Bitcoin. Cada nodo tiene 16 hijos.
La estructura de un bloque en Blockchain
Un bloque se divide en dos partes: la cabecera y el cuerpo.
La cabecera de un bloque es de 80 bytes y consta de 6 campos:
- La version del software que ha generado el bloque.
- El hash de la cabecera del bloque anterior (256 bits).
- Un timestamp. Sello de tiempo (fecha-hora) de generación del bloque.
- El target. Es un parámetro relacionado con el algoritmo Hashcash, es decir, con la dificultad de minado. Marca el valor por debajo del cual debe estar el hash resultante para que sea válido. El número de ceros a la izquierda del hash se regula en función del target, que a su vez se regula (se recalcula) cada 2016 bloques (aproximadamente dos semanas). Cuanto menor es el target, mayor es la dificultad de minado.
- El nonce para PoW. Es un número de 32 bits que se incrementa iterativamente hasta encontrar un hash que cumpla con la condición expresada en el parámetro target.
- El hash raíz del árbol de Merkle (256 bits).
El cuerpo contiene los datos de la transacción.
El algoritmo Hashcash
Hashcash es un algoritmo inventado por Adam Back en 1997 para combatir el correo basura (spam) y que utiliza Bitcoin como prueba de trabajo para validar bloques de transacciones. Consiste en añadir información adicional en el encabezado del mensaje, de tal manera que el emisor calcule un hash que contenga un cierto número n de bits a cero a la izquierda. Para ello, el emisor tiene que aplicar iterativamente el algoritmo de hash sobre el mensaje original 2n veces de media.
El algoritmo Hashcash tiene como parámetros: el hash del bloque anterior, el hash raíz del árbol de Merkle, el target y el nonce. El hash del nuevo bloque debe ser menor que el target para que el bloque sea aceptado por la red, lo que quiere decir que el hash debe comenzar con un cierto número de ceros. La dificultad de calcular un hash con muchos ceros a la izquierda es muy grande, por lo que deben hacerse numerosos intentos, incrementando cada vez el nonce.
El cuerpo del bloque (las transacciones) se “hashean” indirectamente a través del nodo raíz del árbol de Merkle. Puesto que las transacciones no son hasheadas, hashear un bloque con solo una transacción toma exactamente la misma cantidad de esfuerzo que hashear un bloque con 10.000 transacciones.
Citas
“Blockchain: la tecnología que va a cambiar tu vida” (Guillermo Vega y Olivia López Bueno.
“No se pueden parar cosas como Bitcoin. Estará en todas partes y el mundo tendrá que reajustarse” (John McAfee).
“Toda persona informada necesita conocer Bitcoin porque puede ser uno de los desarrollos más importantes del mundo” (Leon Luow).
“Pienso que las redes descentralizadas será la siguientes gran ola de la tecnología” (Melanie Swan).
“Pienso que Bitcoin tiene el potencial de cambiar el mundo” (Peter Thiel).
“La tecnología Blockchain tiene el potencial para crear nuevos fundamentos para nuestros sistemas económicos y sociales” (Harvard Business Review).
“La red Blockchain es robusta por su simplicidad no estructurada” (Satoshi Nakamoto).
“Bitcoin es un tema difícil de desenmarañar” (Andreas M. Antonopaulos).
“Bitcoin es una red de confianza descentralizada que se extiende más allá del restringido ámbito de las monedas” (Andreas M. Antonopaulos).
“Definimos una moneda electronica como una cadena de firmas digitales” (Satoshi Nakamoto).
“Bitcoin es una hazaña tecnológica” (Bill Gates).
“Bitcoin y las tecnologías Blockchain se están convirtiendo en los pilares fundamentals de construcción para el Internet de próxima generación. Las mejores y más brillantes mentes de Silicon Valley ya están trabajando en ello” (Naval Ravikant, cofundador de AngelList).
Bibliografía
- Antonopaulos, Andreas M. Mastering Bitcoin: Programming the Open Blockchain. O’Reilly, 2017. Disponible online en español.
- Ares, José Ángel; Busquet, Josep; Alex Preukschat, Alex. Bitcoin: La caza de Satoshi Nakamoto. Comic español. Dibbuks, 2017.
- Merkle, Ralph C. DAOs, Democracy, and Governance. Internet.
- Moreno Ismael, Santiago. La Revolución de la tecnología de Cadenas de Bloques en la economía: Impacto en los distintos Sectores Económicos. EAE, 2017.
- Nakamoto, Satoshi. Bitcoin: Un Sistema de Efectivo Electrónico Usuario-a-Usuario. Internet. El artículo original Bitcoin, en español.
- Preukshat, Alex (coord.). Blochchain: La Revolución Industrial de Internet. Gestión 200, 2017. Web del libro: www.libro.blockchain.com.
- Topscott, Don; Topscott, Alex. Blockchain Revolution: How the Technology behind Bitcoin is changing money, business and the world. Deusto, 2016.